ButterCMS MCP by usefulapi
Read blog posts, authors, categories, tags, pages and collection items in ButterCMS.
使うべきか
品質と安全性
検出事項(1)
- LOWbuttercms_list_collection_items 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"buttercms": {
"url": "https://buttercms.usefulapi.io/mcp"
}
}
}リモートエンドポイント
https://buttercms.usefulapi.io/mcpstreamable-httpできること
ツール一覧
ツール(15)
🟢buttercms_list_posts(page, page_size, exclude_body, author_slug, category_slug, ...)
List published blog posts, newest first, with optional filters by author, category or tag. Use exclude_body to get short results. Read API: GET /posts/.
入力スキーマ
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Items per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"exclude_body": {
"description": "true = leave out the full post body (smaller response).",
"type": "boolean"
},
"author_slug": {
"description": "Only posts by this author slug.",
"type": "string"
},
"category_slug": {
"description": "Only posts in this category slug.",
"type": "string"
},
"tag_slug": {
"description": "Only posts with this tag slug.",
"type": "string"
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
},
"preview": {
"description": "true = return the latest draft version instead of the published one.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_get_post(slug, locale)
Get one blog post by slug, with the full body, metadata, and the next and previous posts. Read API: GET /posts/{slug}/.
入力スキーマ
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"description": "The post slug (from buttercms_list_posts)."
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_search_posts(query, page, page_size, exclude_body, locale)
Full-text search in blog post titles, bodies and summaries. Results are sorted by relevance. Read API: GET /posts/search/.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Search text."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Items per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"exclude_body": {
"description": "true = leave out the full post body.",
"type": "boolean"
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_list_authors(include, locale)
List all blog authors. Set include to 'recent_posts' to embed the recent posts of each one. Read API: GET /authors/.
入力スキーマ
{
"type": "object",
"properties": {
"include": {
"description": "Set to 'recent_posts' to embed the recent posts.",
"type": "string",
"enum": [
"recent_posts"
]
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_get_author(slug, include, locale)
Get one blog author by slug. Set include to 'recent_posts' to embed the recent posts. Read API: GET /authors/{slug}/.
入力スキーマ
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"description": "The author slug (from buttercms_list_authors)."
},
"include": {
"description": "Set to 'recent_posts' to embed the recent posts.",
"type": "string",
"enum": [
"recent_posts"
]
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_list_categories(include, locale)
List all blog categories. Set include to 'recent_posts' to embed the recent posts of each one. Read API: GET /categories/.
入力スキーマ
{
"type": "object",
"properties": {
"include": {
"description": "Set to 'recent_posts' to embed the recent posts.",
"type": "string",
"enum": [
"recent_posts"
]
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_get_category(slug, include, locale)
Get one blog category by slug. Set include to 'recent_posts' to embed the recent posts. Read API: GET /categories/{slug}/.
入力スキーマ
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"description": "The category slug (from buttercms_list_categories)."
},
"include": {
"description": "Set to 'recent_posts' to embed the recent posts.",
"type": "string",
"enum": [
"recent_posts"
]
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_list_tags(include, locale)
List all blog tags. Set include to 'recent_posts' to embed the recent posts of each one. Read API: GET /tags/.
入力スキーマ
{
"type": "object",
"properties": {
"include": {
"description": "Set to 'recent_posts' to embed the recent posts.",
"type": "string",
"enum": [
"recent_posts"
]
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_get_tag(slug, include, locale)
Get one blog tag by slug. Set include to 'recent_posts' to embed the recent posts. Read API: GET /tags/{slug}/.
入力スキーマ
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"description": "The tag slug (from buttercms_list_tags)."
},
"include": {
"description": "Set to 'recent_posts' to embed the recent posts.",
"type": "string",
"enum": [
"recent_posts"
]
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_list_pages(page_type, page, page_size, order, fields, ...)
List pages of one page type, or all Single Pages with page_type '*'. Filtering and ordering work only for a real page type. Read API: GET /pages/{page_type}/.
入力スキーマ
{
"type": "object",
"properties": {
"page_type": {
"type": "string",
"minLength": 1,
"description": "Page type slug, or '*' for Single Pages."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Items per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"order": {
"description": "Order by 'published', 'updated' or a field of the page type. Prefix '-' for descending.",
"type": "string"
},
"fields": {
"description": "Filter by field value, for example {\"headline\": \"Hello\"}. Keys are field names; nested fields use dots.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,80}$"
},
"additionalProperties": {
"type": "string"
}
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
},
"levels": {
"description": "Depth of referenced content to include (1-5). Higher values give larger responses.",
"type": "integer",
"minimum": 1,
"maximum": 5
},
"preview": {
"description": "true = return the latest draft version instead of the published one.",
"type": "boolean"
}
},
"required": [
"page_type"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_get_page(page_type, page_slug, locale, levels, preview)
Get one page by page type and slug. Use '*' as page_type for a Single Page. Read API: GET /pages/{page_type}/{page_slug}/.
入力スキーマ
{
"type": "object",
"properties": {
"page_type": {
"type": "string",
"minLength": 1,
"description": "Page type slug, or '*' to search all page types."
},
"page_slug": {
"type": "string",
"minLength": 1,
"description": "The page slug."
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
},
"levels": {
"description": "Depth of referenced content to include (1-5). Higher values give larger responses.",
"type": "integer",
"minimum": 1,
"maximum": 5
},
"preview": {
"description": "true = return the latest draft version instead of the published one.",
"type": "boolean"
}
},
"required": [
"page_type",
"page_slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_search_pages(query, page_type, page, page_size, locale, ...)
Search the direct content of pages by text. Results are sorted by relevance. Read API: GET /pages/search/.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Search text."
},
"page_type": {
"description": "Only this page type slug, or '*' for Single Pages.",
"type": "string"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Items per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
},
"levels": {
"description": "Depth of referenced content to include (1-5). Higher values give larger responses.",
"type": "integer",
"minimum": 1,
"maximum": 5
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_get_collections(keys, locale, levels, preview)
Get the items of one or more collections at once. Every key must be an existing collection key. Read API: GET /content/?keys=a,b.
入力スキーマ
{
"type": "object",
"properties": {
"keys": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,80}$"
},
"description": "Collection keys."
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
},
"levels": {
"description": "Depth of referenced content to include (1-5). Higher values give larger responses.",
"type": "integer",
"minimum": 1,
"maximum": 5
},
"preview": {
"description": "true = return the latest draft version instead of the published one.",
"type": "boolean"
}
},
"required": [
"keys"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_list_collection_items(collection_key, page, page_size, order, fields, ...)
List the items of one collection, with paging, ordering and field filters. Each item meta.id is the item id. Read API: GET /content/{collection_key}/.
入力スキーマ
{
"type": "object",
"properties": {
"collection_key": {
"type": "string",
"minLength": 1,
"description": "The collection key."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Items per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"order": {
"description": "A field key of the collection. Prefix '-' for descending.",
"type": "string"
},
"fields": {
"description": "Filter by field value, for example {\"headline\": \"Hello\"}. Keys are field names; nested fields use dots.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,80}$"
},
"additionalProperties": {
"type": "string"
}
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
},
"levels": {
"description": "Depth of referenced content to include (1-5). Higher values give larger responses.",
"type": "integer",
"minimum": 1,
"maximum": 5
},
"preview": {
"description": "true = return the latest draft version instead of the published one.",
"type": "boolean"
}
},
"required": [
"collection_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢buttercms_get_collection_item(collection_key, item_id, locale, levels, preview)
Get one collection item by its numeric id. Read API: GET /content/{collection_key}/{item_id}/.
入力スキーマ
{
"type": "object",
"properties": {
"collection_key": {
"type": "string",
"minLength": 1,
"description": "The collection key."
},
"item_id": {
"type": "string",
"pattern": "^\\d{1,20}$",
"description": "The numeric item id (meta.id from buttercms_list_collection_items)."
},
"locale": {
"description": "Locale API slug, for example 'en' or 'fr'. Default: the account default locale.",
"type": "string"
},
"levels": {
"description": "Depth of referenced content to include (1-5). Higher values give larger responses.",
"type": "integer",
"minimum": 1,
"maximum": 5
},
"preview": {
"description": "true = return the latest draft version instead of the published one.",
"type": "boolean"
}
},
"required": [
"collection_key",
"item_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス